
/**
 * AppleIIGo
 * Slot Device class
 * (C) 2007-2008 by Marc S. Ressl (mressl@umich.edu)
 * Released under the GPL
 */

#include "Motherboard.h"

#ifndef SLOTDEVICE_H
#define SLOTDEVICE_H

class SlotDevice : public Device {
public:
	static SlotDevice * getInstance(char * slotDeviceType,
									class Motherboard * motherboard,
									char * slotDeviceName);
	
	SlotDevice(Motherboard * motherboard, char * slotDeviceName);
	
	void onDevicesConnected();
	
	virtual void writeIo(UINT16 address, UINT8 value);
	virtual UINT8 readIo(UINT16 address);
	
	virtual void writeMemory(UINT16 address, UINT8 value);
	virtual UINT8 readMemory(UINT16 address);
	
protected:
	class TimingGenerator * timingGenerator;
};

#endif
